

package lanzamientoparaboico;


public class Movimientos {
    
    private int angulo;
    private double velocidadInicial;
    private double alturaMax;
    private double tiempoAire;
    private double distanciaLlegada;
    private double velocidadX;
    private double velocidadY;
    private double gravedad = -9.8;
    
    public Movimientos(int angulo, double velInicial){
        this.angulo = angulo;
        this.velocidadInicial = velInicial;
    }
    

    public double getAlturaMax() {
        return (this.getVelocidadY()*this.getTiempoAire()+ (Math.pow(gravedad, 2)*Math.pow(this.getTiempoAire(), 2)))/2;
    }

    public double getTiempoAire() {
        return Math.abs((0-this.getVelocidadY())/Math.abs(gravedad));
    }

    public double getDistanciaLlegada() {
        return this.getVelocidadX() * tiempoTotalCaida();
    }

    public double getVelocidadX() {
        return velocidadInicial*Math.cos(angulo);
    }

    public double getVelocidadY() {
        return Math.abs(velocidadInicial*Math.sin(angulo));
    }
    
    public double tiempoTotalCaida(){
        return this.getTiempoAire()*2;
    }
    
    public double velFinalY(){
        return gravedad*this.getTiempoAire() + this.getVelocidadY();
    }
}
